<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
var t_pagestart = new Date().getTime();
</script>
<script src="../../../boomerang.js" type="text/javascript"></script>
<script type="text/javascript">
BOOMR.init({
		user_ip: '10.0.0.1',
		BW: {
			base_url: '../../images/',
			cookie: 'HOWTO-BA'
		},
		RT: {
			cookie: 'HOWTO-RT'
		}
	});
BOOMR.plugins.RT.setTimer("t_js", new Date().getTime() - t_pagestart).
		startTimer("t_head");
</script>
<title>Boomerang 使用方法 #4: さらに正確なページの読み込み時間を測定する</title>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../boomerang-docs.css">
<script type="text/javascript">
BOOMR.plugins.RT.endTimer("t_head").
		startTimer("t_body");
</script>
</head>
<body>
<span style="float:right;"><a href="../">ドキュメント一覧</a> | <a href="index.html">使用方法一覧</a></span>
<h1>Boomerang 使用方法 #4: さらに正確なページの読み込み時間を測定する</h1>
<p>
この要件の説明は <a href="../use-cases.html#uc-4">ユースケース #4</a> をご覧ください。
</p>
<p>
今まではページがユーザーによって有効になったときの時間を測定していました。また、これはページ全体の読み込み時間に遅れずにページ内の異なるコンポーネントにかかる時間を測定するには役立つかもしれません。boomerang はページの一部分を測定するための設定が可能なタイマーを追加する機能を提供します。これを行うには roundtrip（<code>BOOMR.plugin.RT</code>）プラグインの <code>startTimer()</code> と <code>endTimer()</code> メソッドを使用します。
</p>

<p>
以下の例では、<code>boomerang.js</code> が読み込まれているかの確認とこれらのメソッドを呼び出す前に <code>init()</code> メソッドが呼び出されているか確認する必要があります。おそらくページの先頭にそれを配置するといいでしょう。これをどう使うかはこの後確認します。
</p>

<p>
まず最初に、あなたが測定したいページの領域を決めます。前で <code>startTimer()</code> を、後で <code>endTimer()</code> を呼び出します。それぞれのタイマーには自身の名前を持ちます。名前は自由な文字列でつけられますが、効率的にするためにシンプルな名前がいいでしょう。英数字とアンダースコアで、最大5文字の名前にしてください。例えば、<code>t_ads</code>、<code>t_head</code>、<code>t_js</code> といった感じです。また、次の名前は予約されています: <code>t_done</code>、<code>t_page</code>、<code>t_resp</code>
</p>

<p>
タイマーを開始する前に boomerang.js が読み込まれていることを確認してください。
</p>

<pre>
&lt;html&gt;
  &lt;head&gt;
    &lt;script src="boomerang.js" type="text/javascript"&gt;&lt;/script&gt;
    &lt;script type="text/javascript"&gt;
      BOOMR.init({
		beacon_url: "http://yoursite.com/path/to/beacon.php"
      });
      <em>BOOMR.plugins.RT.startTimer("t_head");</em>
    &lt;/script&gt;
    &lt;title&gt;page title&lt;/title&gt;
    &lt;meta http-equiv="Content-type" content="text/html; charset=utf-8"&gt;
    &lt;link rel="stylesheet" type="text/css" href="../../boomerang-docs.css"&gt;
    &lt;script type="text/javascript"&gt;
      <em>BOOMR.plugins.RT.endTimer("t_head").startTimer("t_body");</em>
    &lt;/script&gt;
  &lt;/head&gt;
  &lt;body&gt;
    page body here
    &lt;script type="text/javascript"&gt;
      <em>BOOMR.plugins.RT.endTimer("t_body");</em>
    &lt;/script&gt;
  &lt;/body&gt;
&lt;/html&gt;
</pre>

<p>
タイマーは <code>t_done</code> と一緒にビーコンに読み込まれます。
</p>

<p>
<code>endTimer</code> と <code>startTimer</code> をチェーンして呼び出すときは順番に注意してください。ほとんどのメソッドはオブジェクトの参照を返すためこれが可能になります。タイマーのメソッドは <code>BOOMR.plugins.RT</code> オブジェクト上にあることも注意してください。メソッドの返り値はそのオブジェクトであって、<code>BOOMR</code> オブジェクトではありません。
</p>

<h2>boomerang より前のコンテンツの読み込み時間を測定する</h2>
<p>
私たちは何年もパフォーマンスのためにドキュメントの下に JavaScript を配置すると良いと言ってきました。いいアドバイスではないかもしれませんが、ドキュメントの上部で boomerang を読み込んでください。そうすればページ内で時間を測定できます。読み込みが終われば1度だけ boomerang にそれらの結果を渡します。これは <code>BOOMR.plugins.RT.setTimer()</code> メソッドを使って行ないます。このメソッドは2つのパラメーターを取ります &mdash; タイマーの名前とミリ秒の時間の値です。コードはこのようになります:
</p>

<pre>
&lt;html&gt;
  &lt;head&gt;
    &lt;script type="text/javascript"&gt;
      <em>var t_pagestart=new Date().getTime();</em>
    &lt;/script&gt;
    &lt;title&gt;page title&lt;/title&gt;
    &lt;meta http-equiv="Content-type" content="text/html; charset=utf-8"&gt;
    &lt;script type="text/javascript"&gt;
      <em>var t_headend = new Date().getTime();</em>
    &lt;/script&gt;
  &lt;/head&gt;
  &lt;body&gt;
    page body here
    &lt;script type="text/javascript"&gt;
      <em>var t_jsstart = new Date().getTime();</em>
    &lt;/script&gt;
    &lt;script src="boomerang.js" type="text/javascript"&gt;&lt;/script&gt;
    &lt;script type="text/javascript"&gt;
      BOOMR.init({
		beacon_url: "http://yoursite.com/path/to/beacon.php"
      });
      <em>var t_bodyend = new Date().getTime();                        </em>
      <em>BOOMR.plugins.RT.setTimer("t_head", t_headend - t_pagestart).</em>
      <em>                 setTimer("t_body", t_bodyend - t_headend).  </em>
      <em>                 setTimer("t_js", t_bodyend - t_jsstart);    </em>
    &lt;/script&gt;
  &lt;/body&gt;
&lt;/html&gt;
</pre>

<p class="perma-link">
最新のソースコードとドキュメントは <a href="http://github.com/lognormal/boomerang/">github.com/lognormal/boomerang</a> に公開されています。
</p>

<p id="results">
</p>
<script type="text/javascript">
BOOMR.plugins.RT.startTimer("t_howtojs");
</script>
<script src="../../howtos/howtos.js" type="text/javascript"></script>
<script type="text/javascript">
BOOMR.plugins.RT.endTimer("t_howtojs").endTimer("t_body");
</script>
</body>
</html>
